The present invention relates generally to networks of a system including virtual machines, and more specifically, to a virtual machine network controller.
Network virtualization creates a virtual network as seen by end stations in a way that greatly simplifies network provisioning in multi-tenant environments, as well as traditional environments. One of the more common techniques of achieving network virtualization is to use network overlays, where tunnels are established between servers, edge network switches, and gateways to which end stations connect. Tunnels are implemented by encapsulating packets transmitted by a source end station into an overlay header that transports the packet from the source switch to a target switch via an internet protocol (IP)-based network. In addition to this tunneling mechanism, the edge switches participate in an address discovery protocol, which may be learning/flooding based, or lookup-based.
Overlay networks like Virtual eXtensible Local Area Network (VXLAN) connect geographically separated Layer-2 (L2) networks using tunnels. These are L2 over Layer-3 (L3) tunnels. L2 packets originated by a virtual machine (VM) in a VXLAN and destined to another VM or group of VMs in same VXLAN in another physical location are carried over L3 tunnels. VXLAN tunnels are created by encapsulating data packets with VXLAN identifiers, which identify the tunnel through which the data packets are to flow.